In the event of technical difficulties with Szkopuł, please contact us via email at [email protected].
If you would like to talk about tasks, solutions or technical problems, please visit our Discord servers. They are moderated by the community, but members of the support team are also active there.
Po ogromnej klapie, jaką okazały się Komputery Trzybitowe (KTB), naukowcy Bajtlandii mają nowy wspaniały pomysł: Kwantowe Komputery Trzybitowe (KKTB). Komputery KTB należy potraktować jako zwyczajną rozgrzewkę przed prawdziwym wyzwaniem - KKTB.
Przewiduje się, że nowe komputery kwantowe będą miały niespotykaną dotąd moc, bla, bla, bla, wiele głupawych problemów na olimpiady, bla, bla, bla. Do rzeczy.
Tak jak poprzednio, podstawową trudnością jest inicjalizacja pamięci. W przypadku komputerów kwantowych problemy są jednak zupełnie innej natury. Wszystkie operacje wykonywane na elementach KKTB mają efekty uboczne, tzn. wpływają na inne elementy komputera. Neutralizowanie tych efektów jest bardzo kosztowne, dlatego inicjalizacja pamięci bit po bicie nie jest możliwa. Istnieje jednak inne podejście do problemu, a mianowicie sterowane impulsy o średnim zasięgu (SISZ). Naukowcy potrafią wygenerować impulsy, których wpływ na każdy z bitów pamięci KKTB może być dokładnie obliczony. Impulsy te można emitować bardzo szybko, więc użycie nawet dużej liczby impulsów jest bardziej opłacalne niż inicjalizacja pamięci bit po bicie. Powstaje pytanie, czy da się wyzerować całą pamięc przy pomocy SISZ. Twoim zadaniem jest napisanie programu, który odpowie na to pytanie.
Bardziej formalnie, każdy bit pamięci może być w jednym z stanów ponumerowanych . Impuls SISZ oddziaływuje na wszystkie bity w ten sam sposób, a zatem można go traktować jak funkcję . Na przykład, oznacza, że po wyemitowaniu impulsu , wszystkie bity będące w stanie przejdą w stan . Naukowcy potrafią emitować pewną liczbę impulsów . Twoim zadaniem jest stwierdzić, czy istnieje ciąg impulsów, który sprowadza wszystkie bity do stanu (zeruje je), niezależnie od ich stanu początkowego.
Napisz program, który:
Każdy test składa się z pewnej liczby zestawów danych. Pierwszy wiersz standardowego wejścia zawiera pojedynczą liczbę naturalną , , liczbę zestawów danych. W dalszej części wejścia znajdują się zestawy danych. Opis pojedynczego zestawu danych rozpoczyna się wierszem zawierającym dwie liczby naturalne , , (, ), gdzie jest liczbą różnych stanów bitu, a liczbą dostępnych impulsów. Kolejnych wierszy zawiera opisy impulsów, -ty wiersz zawiera opis -tego impulsu. Opis impulsu jest ciągiem liczb całkowitych , opisujących wpływ na stan każdego z bitów pamięci. Liczby te są pooddzielane pojedynczymi odstępami.
Na standardowe wyjście należy wypisać wierszy, po jednym dla każdego zestawu danych. -ty wiersz powinien składać się z pojedynczego słowa TAK, jeśli wyzerowanie pamięci jest dla -tego testu możliwe, lub NIE w przeciwnym przypadku.
Dla danych wejściowych:
2 5 2 1 2 3 4 0 2 3 4 0 1 5 2 1 2 3 4 0 3 3 4 0 1
poprawną odpowiedzią jest:
NIE TAK
Zapożyczenie z CPSPC: Marcin Mucha.